package com.springboot.apiexample.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 限流器
 * @author NiJo_H
 * @version 1.0
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RateLimit {
    String value() default "";

    /**
     *  每秒放入桶中的令牌数，默认10,最大即不限流(Double.MAX_VALUE)
     * @return
     */
    double perSecond() default 10;

    /**
     * 获取令牌的等待时间  默认1
     * @return
     */
    int timeOut() default 1;

    /**
     * 超时时间单位 默认：秒
     * @return
     */
    TimeUnit timeOutUnit() default TimeUnit.SECONDS;
}
